{***************************************************************
    SpyGestion  Copyright (C) 2008 Christophe KOALI <nature2gas@gmail.com>
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
****************************************************************}
unit modAttaqueActionToDo;

interface

uses Classes,
     modBaseType,

     SysUtils;


     
type
   TAttaqueActionMouvement = record
       // uid
       id       : integer;

       // Ordre de priorite
       // la priorité doit rester changeable pour chaque planete
       // car ici c'est une base de données de mouvement
       //Priorite : integer;

       // 1 à 10
       Speed    : integer;

       // en seconde
       DureeVoyageMin: integer;
       DureeVoyageMax: integer;

       // intervalle de recherche
       MaxIntervalle: integer;

       InclureRessource: boolean;
   end;

   
   PAttaqueActionMouvement = ^TAttaqueActionMouvement;

   TAttaqueActionToDo = record
       PlaneteConcernee: TPlanetLocation;

       // peut être vide (-1)
       PlaneteDestination: TPlanetLocation;
       PlaneteDestinationSpeed: integer;    // 1 à 10



       // si le nb de slot de flotte le permet, on en utilise un
       // pour les ressources
       PlaneteDestinationRessources: TPlanetLocation;
       PlaneteDestinationRessourcesSpeed: integer;    // 1 à 10


       // -1 pour desactive, sinon correspond à un numéro de priorité
       EnvoyeFlotteChampDeRuine        : PAttaqueActionMouvement;
       EnvoyeFlotteChampDeRuinePriorite: integer;

       EnvoyeFlotteInactif         : PAttaqueActionMouvement;
       EnvoyeFlotteInactifPriorite : integer;


       // sépare la flotte en deux (ou plusieurs)
       DispatchFlotteEnDeuxPartie: integer;


       // Inclu également les ressources
       InclureRessource: boolean;

       // Essaye de construire un batiment
       EssayeConstruireBatiment : boolean;
       EssayeConstruireBatimentLowPriority : string;

       EssayeConstruireRecherche: boolean;
       EssayeConstruireRechercheLowPriority : string;


       DepenserLesRessourcesRestanteEnDef: boolean;

       // ressource à laisser à quai
       RessourceALaisseAQuai: TOGRessourceAll;

       
       EvacuerQueLaFlotteSansLesRessourcesSiLattaquandPerd: boolean;
   end;

implementation

end.
